#ifndef RESETDIALOG_H
#define RESETDIALOG_H

#include <QDialog>
#include <QMap>
#include <functional>
#include <QJsonObject>

#include "netglobal.h"

namespace Ui {
class ResetDialog;
}

//重置密码窗口
class ResetDialog : public QDialog
{
    Q_OBJECT

public:
    explicit ResetDialog(QWidget *parent = nullptr);
    ~ResetDialog();

private slots:
    // 返回登录按钮点击事件
    void on_cancel_btn_clicked();
    // 确定按钮点击事件
    void on_confirm_btn_clicked();
    // 获取验证码点击事件
    void on_get_code_btn_clicked();

    // 检查输入框内容是否符合要求
    void _CheckInput();

    void _SlotResetModFinish(ReqId id, ErrorCode err, QString res);;

private:
    void _SetConnect();
    bool _CheckUserInput();
    void _InitHandlers();

private:
    Ui::ResetDialog *ui;
    QMap<ReqId, std::function<void(const QJsonObject&)>> _handlers;

signals:
    void sigSwitchLogin(); //返回登录信号
};

#endif // RESETDIALOG_H
